JavaScript 数组排序 | 您所在的位置:网站首页 › js 字符串数组 › JavaScript 数组排序 |
w3school 在线教程
HTML 系列教程
浏览器脚本
服务器脚本
编程教程
XML 系列教程
建站手册
参考手册
JS 教程
JS 教程
JS 简介
JS 使用
JS 输出
JS 语句
JS 语法
JS 注释
JS 变量
JS Let
JS Const
JS 运算符
JS 算数
JS 赋值
JS 数据类型
JS 函数
JS 对象
JS 事件
JS 字符串
JS 字符串方法
JS 字符串搜索
JS 字符串模板
JS 数字
JS BigInt
JS 数字方法
JS 数字属性
JS 数组
JS 数组方法
JS 数组排序
JS 数组迭代
JS 数组 Const
JS 日期
JS 日期格式
JS 日期获取方法
JS 日期设置方法
JS 数学
JS 随机
JS 逻辑
JS 比较
JS 条件
JS Switch
JS Loop For
JS Loop For In
JS Loop For Of
JS Loop While
JS Break
JS typeof
JS 类型转换
JS 位运算
JS 正则表达式
JS 运算符优先级
JS 异常
JS 作用域
JS Hoisting
JS 严格模式
JS this 关键词
JS 箭头函数
JS 类
JS 模块
JS JSON
JS 调试
JS 样式指南
JS 最佳实践
JS 错误
JS 性能
JS 保留词
JS 版本
JS 版本
JS 2009 (ES5)
JS 2015 (ES6)
JS 2016
JS 2017
JS 2018
JS 2019
JS 2020
JS 2021
JS IE / Edge
JS 历史
JS 对象
JS 对象定义
JS 对象属性
JS 对象方法
JS 对象显示
JS 对象访问器
JS 对象构造器
JS 对象原型
JS 可迭代对象
JS Set
JS Map
JS 对象引用
JS 函数
JS 函数定义
JS 函数参数
JS 函数调用
JS 函数 Call
JS 函数 Apply
JS 函数绑定
JS 闭包
JS 类
JS 类简介
JS 类继承
JS Static
JS Async
JS 回调
JS 异步
JS Promise
JS Async
JS HTML DOM
DOM 简介
DOM 方法
DOM 文档
DOM 元素
DOM HTML
DOM 表单
DOM CSS
DOM 动画
DOM 事件
DOM 事件监听程序
DOM 导航
DOM 节点
DOM 集合
DOM 节点列表
JS Browser BOM
JS Window
JS Screen
JS Location
JS History
JS Navigator
JS 弹出框
JS Timing
JS Cookies
JS Web API
Web API 简介
Web Form API
Web History API
Web Storage API
Web Worker API
Web Fetch API
Web Geolocation API
JS AJAX
AJAX 简介
AJAX XMLHttp
AJAX 请求
AJAX 响应
AJAX XML 文件
AJAX PHP
AJAX ASP
AJAX 数据库
AJAX 应用程序
AJAX 实例
JS JSON
JSON 简介
JSON 语法
JSON vs XML
JSON 数据类型
JSON 解析
JSON 字符串化
JSON 对象
JSON 数组
JSON 服务器
JSON PHP
JSON HTML
JSON JSONP
JS vs jQuery
jQuery 选择器
jQuery HTML
jQuery CSS
jQuery DOM
JS 图形
JS 图形
JS Canvas
JS Plotly.js
JS Chart
JS 谷歌图表
JS D3.js
JS 实例
JS 实例
JS HTML DOM
JS HTML 输入
JS HTML 对象
JS HTML 事件
JS Browser
JS 测验
JS 参考手册
JavaScript 对象
HTML DOM 对象
JavaScript 数组排序
JS 数组方法
JS 数组迭代
sort() 方法是最强大的数组方法之一。 数组排序sort() 方法以字母顺序对数组进行排序: 实例 var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.sort(); // 对 fruits 中的元素进行排序亲自试一试 反转数组reverse() 方法反转数组中的元素。 您可以使用它以降序对数组进行排序: 实例 var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.sort(); // 对 fruits 中的元素进行排序 fruits.reverse(); // 反转元素顺序亲自试一试 数字排序默认地,sort() 函数按照字符串顺序对值进行排序。 该函数很适合字符串("Apple" 会排在 "Banana" 之前)。 不过,如果数字按照字符串来排序,则 "25" 大于 "100",因为 "2" 大于 "1"。 正因如此,sort() 方法在对数值排序时会产生不正确的结果。 我们通过一个比值函数来修正此问题: 实例 var points = [40, 100, 1, 5, 25, 10]; points.sort(function(a, b){return a - b});亲自试一试 使用相同的技巧对数组进行降序排序: 实例 var points = [40, 100, 1, 5, 25, 10]; points.sort(function(a, b){return b - a});亲自试一试 比值函数比较函数的目的是定义另一种排序顺序。 比较函数应该返回一个负,零或正值,这取决于参数: function(a, b){return a-b}当 sort() 函数比较两个值时,会将值发送到比较函数,并根据所返回的值(负、零或正值)对这些值进行排序。 实例:当比较 40 和 100 时,sort() 方法会调用比较函数 function(40,100)。 该函数计算 40-100,然后返回 -60(负值)。 排序函数将把 40 排序为比 100 更低的值。 您可以使用下面的代码片段来测试数值和字母排序: 以字母顺序排序 以数字顺序排序 var points = [40, 100, 1, 5, 25, 10]; document.getElementById("demo").innerHTML = points; function myFunction1() { points.sort(); document.getElementById("demo").innerHTML = points; } function myFunction2() { points.sort(function(a, b){return a - b}); document.getElementById("demo").innerHTML = points; }亲自试一试 以随机顺序排序数组 实例 var points = [40, 100, 1, 5, 25, 10]; points.sort(function(a, b){return 0.5 - Math.random()});亲自试一试 查找最高(或最低)的数组值JavaScript 不提供查找数组中最大或最小数组值的内建函数。 不过,在对数组进行排序之后,您能够使用索引来获得最高或最低值。 升序排序: 实例 var points = [40, 100, 1, 5, 25, 10]; points.sort(function(a, b){return a - b}); // 现在 points[0] 包含最低值 // 而 points[points.length-1] 包含最高值亲自试一试 降序排序: 实例 var points = [40, 100, 1, 5, 25, 10]; points.sort(function(a, b){return b - a}); // 现在 points[0] 包含最高值 // 而 points[points.length-1] 包含最低值亲自试一试 如果您仅仅需要找到最高或最低值,对整个数组进行排序是效率极低的方法。 对数组使用 Math.max()您可以使用 Math.max.apply 来查找数组中的最高值: 实例 function myArrayMax(arr) { return Math.max.apply(null, arr); }亲自试一试 Math.max.apply([1, 2, 3]) 等于 Math.max(1, 2, 3)。 对数组使用 Math.min()您可以使用 Math.min.apply 来查找数组中的最低值: 实例 function myArrayMin(arr) { return Math.min.apply(null, arr); }亲自试一试 Math.min.apply([1, 2, 3]) 等于 Math.min(1, 2, 3)。 我的 Min / Max JavaScript 方法最快的解决方法是使用“自制”方法。 此函数遍历数组,用找到的最高值与每个值进行比较: 实例(查找 Max) function myArrayMax(arr) { var len = arr.length var max = -Infinity; while (len--) { if (arr[len] > max) { max = arr[len]; } } return max; }亲自试一试 此函数遍历数组,用找到的最低值与每个值进行比较: 实例(查找 Min) function myArrayMin(arr) { var len = arr.length var min = Infinity; while (len--) { if (arr[len]亲自试一试 排序对象数组JavaScript 数组经常会包含对象: 实例 var cars = [ {type:"Volvo", year:2016}, {type:"Saab", year:2001}, {type:"BMW", year:2010}];即使对象拥有不同数据类型的属性,sort() 方法仍可用于对数组进行排序。 解决方法是通过比较函数来对比属性值: 实例 cars.sort(function(a, b){return a.year - b.year});亲自试一试 比较字符串属性会稍复杂: 实例 cars.sort(function(a, b){ var x = a.type.toLowerCase(); var y = b.type.toLowerCase(); if (x < y) {return -1;} if (x > y) {return 1;} return 0; });亲自试一试 JS 数组方法 JS 数组迭代 JavaScript 和 HTML DOM 参考手册 JavaScript 实例 JavaScript 测验 JavaScript 高级教程W3School 简体中文版提供的内容仅用于培训和测试,不保证内容的正确性。通过使用本站内容随之而来的风险与本站无关。版权所有,保留一切权利。 关于 W3School 帮助 W3School 使用条款 隐私条款 技术支持:赢科 蒙ICP备06004630号 |
CopyRight 2018-2019 实验室设备网 版权所有 |